<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GimpProcedure: GIMP 3 Library Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GIMP 3 Library Reference Manual">
<link rel="up" href="libgimp-general.html" title="Functions not Related to Specific Images">
<link rel="prev" href="GimpPDB.html" title="GimpPDB">
<link rel="next" href="libgimp3-GimpProcedure-params.html" title="GimpProcedure-params">
<meta name="generator" content="GTK-Doc V1.33.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#GimpProcedure.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GimpProcedure.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                  <a href="#GimpProcedure.properties" class="shortcut">Properties</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="libgimp-general.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GimpPDB.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="libgimp3-GimpProcedure-params.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GimpProcedure"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GimpProcedure.top_of_page"></a>GimpProcedure</span></h2>
<p>GimpProcedure</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GimpProcedure.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a href="/local/head/share/gtk-doc/html/libgimpbase/libgimpbase-GimpValueArray.html#GimpValueArray"><span class="returnvalue">GimpValueArray</span></a> *
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="GimpProcedure.html#GimpRunFunc" title="GimpRunFunc ()">*GimpRunFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="returnvalue">GimpProcedure</span></a> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-new" title="gimp_procedure_new ()">gimp_procedure_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GimpPlugIn.html" title="GimpPlugIn"><span class="returnvalue">GimpPlugIn</span></a> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-plug-in" title="gimp_procedure_get_plug_in ()">gimp_procedure_get_plug_in</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-name" title="gimp_procedure_get_name ()">gimp_procedure_get_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="../html/libgimpbase3-gimpbaseenums.html#GimpPDBProcType"><span class="returnvalue">GimpPDBProcType</span></a>
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-proc-type" title="gimp_procedure_get_proc_type ()">gimp_procedure_get_proc_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-set-image-types" title="gimp_procedure_set_image_types ()">gimp_procedure_set_image_types</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-image-types" title="gimp_procedure_get_image_types ()">gimp_procedure_get_image_types</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-set-menu-label" title="gimp_procedure_set_menu_label ()">gimp_procedure_set_menu_label</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-menu-label" title="gimp_procedure_get_menu_label ()">gimp_procedure_get_menu_label</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-add-menu-path" title="gimp_procedure_add_menu_path ()">gimp_procedure_add_menu_path</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GList</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-menu-paths" title="gimp_procedure_get_menu_paths ()">gimp_procedure_get_menu_paths</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-set-icon-name" title="gimp_procedure_set_icon_name ()">gimp_procedure_set_icon_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-set-icon-file" title="gimp_procedure_set_icon_file ()">gimp_procedure_set_icon_file</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-set-icon-pixbuf" title="gimp_procedure_set_icon_pixbuf ()">gimp_procedure_set_icon_pixbuf</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="../html/libgimpbase3-gimpbaseenums.html#GimpIconType"><span class="returnvalue">GimpIconType</span></a>
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-icon-type" title="gimp_procedure_get_icon_type ()">gimp_procedure_get_icon_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-icon-name" title="gimp_procedure_get_icon_name ()">gimp_procedure_get_icon_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GFile</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-icon-file" title="gimp_procedure_get_icon_file ()">gimp_procedure_get_icon_file</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkPixbuf</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-icon-pixbuf" title="gimp_procedure_get_icon_pixbuf ()">gimp_procedure_get_icon_pixbuf</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-set-documentation" title="gimp_procedure_set_documentation ()">gimp_procedure_set_documentation</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-blurb" title="gimp_procedure_get_blurb ()">gimp_procedure_get_blurb</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-help" title="gimp_procedure_get_help ()">gimp_procedure_get_help</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-help-id" title="gimp_procedure_get_help_id ()">gimp_procedure_get_help_id</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-set-attribution" title="gimp_procedure_set_attribution ()">gimp_procedure_set_attribution</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-authors" title="gimp_procedure_get_authors ()">gimp_procedure_get_authors</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-copyright" title="gimp_procedure_get_copyright ()">gimp_procedure_get_copyright</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-date" title="gimp_procedure_get_date ()">gimp_procedure_get_date</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GParamSpec</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-add-argument" title="gimp_procedure_add_argument ()">gimp_procedure_add_argument</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GParamSpec</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-add-aux-argument" title="gimp_procedure_add_aux_argument ()">gimp_procedure_add_aux_argument</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GParamSpec</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-add-return-value" title="gimp_procedure_add_return_value ()">gimp_procedure_add_return_value</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GParamSpec</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-find-argument" title="gimp_procedure_find_argument ()">gimp_procedure_find_argument</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GParamSpec</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-find-aux-argument" title="gimp_procedure_find_aux_argument ()">gimp_procedure_find_aux_argument</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GParamSpec</span> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-find-return-value" title="gimp_procedure_find_return_value ()">gimp_procedure_find_return_value</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GParamSpec</span> **
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-arguments" title="gimp_procedure_get_arguments ()">gimp_procedure_get_arguments</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GParamSpec</span> **
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-aux-arguments" title="gimp_procedure_get_aux_arguments ()">gimp_procedure_get_aux_arguments</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GParamSpec</span> **
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-get-return-values" title="gimp_procedure_get_return_values ()">gimp_procedure_get_return_values</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/local/head/share/gtk-doc/html/libgimpbase/libgimpbase-GimpValueArray.html#GimpValueArray"><span class="returnvalue">GimpValueArray</span></a> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-new-arguments" title="gimp_procedure_new_arguments ()">gimp_procedure_new_arguments</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/local/head/share/gtk-doc/html/libgimpbase/libgimpbase-GimpValueArray.html#GimpValueArray"><span class="returnvalue">GimpValueArray</span></a> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-new-return-values" title="gimp_procedure_new_return_values ()">gimp_procedure_new_return_values</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/local/head/share/gtk-doc/html/libgimpbase/libgimpbase-GimpValueArray.html#GimpValueArray"><span class="returnvalue">GimpValueArray</span></a> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-run" title="gimp_procedure_run ()">gimp_procedure_run</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-extension-ready" title="gimp_procedure_extension_ready ()">gimp_procedure_extension_ready</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GimpProcedureConfig.html" title="GimpProcedureConfig"><span class="returnvalue">GimpProcedureConfig</span></a> *
</td>
<td class="function_name">
<a class="link" href="GimpProcedure.html#gimp-procedure-create-config" title="gimp_procedure_create_config ()">gimp_procedure_create_config</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GimpProcedure.properties"></a><h2>Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="properties_type">
<col width="300px" class="properties_name">
<col width="200px" class="properties_flags">
</colgroup>
<tbody>
<tr>
<td class="property_type">
<span class="type">char</span> *</td>
<td class="property_name"><a class="link" href="GimpProcedure.html#GimpProcedure--name" title="The “name” property">name</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type">
<a class="link" href="GimpPlugIn.html" title="GimpPlugIn"><span class="type">GimpPlugIn</span></a> *</td>
<td class="property_name"><a class="link" href="GimpProcedure.html#GimpProcedure--plug-in" title="The “plug-in” property">plug-in</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type"><a href="../html/libgimpbase3-gimpbaseenums.html#GimpPDBProcType"><span class="type">GimpPDBProcType</span></a></td>
<td class="property_name"><a class="link" href="GimpProcedure.html#GimpProcedure--procedure-type" title="The “procedure-type” property">procedure-type</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GimpProcedure.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GimpProcedure.html#GimpProcedure-struct" title="GimpProcedure">GimpProcedure</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GimpProcedure.html#GimpProcedureClass" title="struct GimpProcedureClass">GimpProcedureClass</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GimpProcedure.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    GObject
    <span class="lineart">╰──</span> GimpProcedure
        <span class="lineart">├──</span> <a class="link" href="GimpFileProcedure.html" title="GimpFileProcedure">GimpFileProcedure</a>
        <span class="lineart">├──</span> <a class="link" href="GimpImageProcedure.html" title="GimpImageProcedure">GimpImageProcedure</a>
        <span class="lineart">╰──</span> <a class="link" href="GimpThumbnailProcedure.html" title="GimpThumbnailProcedure">GimpThumbnailProcedure</a>
</pre>
</div>
<div class="refsect1">
<a name="GimpProcedure.description"></a><h2>Description</h2>
</div>
<div class="refsect1">
<a name="GimpProcedure.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="GimpRunFunc"></a><h3>GimpRunFunc ()</h3>
<pre class="programlisting"><a href="/local/head/share/gtk-doc/html/libgimpbase/libgimpbase-GimpValueArray.html#GimpValueArray"><span class="returnvalue">GimpValueArray</span></a> *
<span class="c_punctuation">(</span>*GimpRunFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                <em class="parameter"><code>const <a href="/local/head/share/gtk-doc/html/libgimpbase/libgimpbase-GimpValueArray.html#GimpValueArray"><span class="type">GimpValueArray</span></a> *args</code></em>,
                <em class="parameter"><code><span class="type">gpointer</span> run_data</code></em>);</pre>
<p>The run function is run during the lifetime of the GIMP session,
each time a plug-in procedure is called.</p>
<div class="refsect3">
<a name="GimpRunFunc.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>the <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> that runs.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>args</p></td>
<td class="parameter_description"><p>the <em class="parameter"><code>procedure</code></em>
's arguments.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>run_data</p></td>
<td class="parameter_description"><p>the run_data given in <a class="link" href="GimpProcedure.html#gimp-procedure-new" title="gimp_procedure_new ()"><code class="function">gimp_procedure_new()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GimpRunFunc.returns"></a><h4>Returns</h4>
<p>the <em class="parameter"><code>procedure</code></em>
's return values. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-new"></a><h3>gimp_procedure_new ()</h3>
<pre class="programlisting"><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="returnvalue">GimpProcedure</span></a> *
gimp_procedure_new (<em class="parameter"><code><a class="link" href="GimpPlugIn.html" title="GimpPlugIn"><span class="type">GimpPlugIn</span></a> *plug_in</code></em>,
                    <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
                    <em class="parameter"><code><a href="../html/libgimpbase3-gimpbaseenums.html#GimpPDBProcType"><span class="type">GimpPDBProcType</span></a> proc_type</code></em>,
                    <em class="parameter"><code><a class="link" href="GimpProcedure.html#GimpRunFunc" title="GimpRunFunc ()"><span class="type">GimpRunFunc</span></a> run_func</code></em>,
                    <em class="parameter"><code><span class="type">gpointer</span> run_data</code></em>,
                    <em class="parameter"><code><span class="type">GDestroyNotify</span> run_data_destroy</code></em>);</pre>
<p>Creates a new procedure named <em class="parameter"><code>name</code></em>
 which will call <em class="parameter"><code>run_func</code></em>
 when
invoked.</p>
<p>The <em class="parameter"><code>name</code></em>
 parameter is mandatory and should be unique, or it will
overwrite an already existing procedure (overwrite procedures only
if you know what you're doing).</p>
<p><em class="parameter"><code>proc_type</code></em>
 should be <a href="../html/libgimpbase3-gimpbaseenums.html#GIMP-PDB-PROC-TYPE-PLUGIN:CAPS"><code class="literal">GIMP_PDB_PROC_TYPE_PLUGIN</code></a> for "normal" plug-ins.</p>
<p>Using <a href="../html/libgimpbase3-gimpbaseenums.html#GIMP-PDB-PROC-TYPE-EXTENSION:CAPS"><code class="literal">GIMP_PDB_PROC_TYPE_EXTENSION</code></a> means that the plug-in will add
temporary procedures. Therefore, the GIMP core will wait until the
<a href="../html/libgimpbase3-gimpbaseenums.html#GIMP-PDB-PROC-TYPE-EXTENSION:CAPS"><code class="literal">GIMP_PDB_PROC_TYPE_EXTENSION</code></a> procedure has called
<a class="link" href="GimpProcedure.html#gimp-procedure-extension-ready" title="gimp_procedure_extension_ready ()"><code class="function">gimp_procedure_extension_ready()</code></a>, which means that the procedure
has done its initialization, installed its temporary procedures and
is ready to run.</p>
<p><span class="emphasis"><em>Not calling <a class="link" href="GimpProcedure.html#gimp-procedure-extension-ready" title="gimp_procedure_extension_ready ()"><code class="function">gimp_procedure_extension_ready()</code></a> from a
<a href="../html/libgimpbase3-gimpbaseenums.html#GIMP-PDB-PROC-TYPE-EXTENSION:CAPS"><code class="literal">GIMP_PDB_PROC_TYPE_EXTENSION</code></a> procedure will cause the GIMP core to
lock up.</em></span></p>
<p>Additionally, a <a href="../html/libgimpbase3-gimpbaseenums.html#GIMP-PDB-PROC-TYPE-EXTENSION:CAPS"><code class="literal">GIMP_PDB_PROC_TYPE_EXTENSION</code></a> procedure with no
arguments added is an "automatic" extension that will be
automatically started on each GIMP startup.</p>
<p><a href="../html/libgimpbase3-gimpbaseenums.html#GIMP-PDB-PROC-TYPE-TEMPORARY:CAPS"><code class="literal">GIMP_PDB_PROC_TYPE_TEMPORARY</code></a> must be used for temporary procedures
that are created during a plug-ins lifetime. They must be added to
the <a class="link" href="GimpPlugIn.html" title="GimpPlugIn"><span class="type">GimpPlugIn</span></a> using <a class="link" href="GimpPlugIn.html#gimp-plug-in-add-temp-procedure" title="gimp_plug_in_add_temp_procedure ()"><code class="function">gimp_plug_in_add_temp_procedure()</code></a>.</p>
<p><em class="parameter"><code>run_func</code></em>
 is called via <a class="link" href="GimpProcedure.html#gimp-procedure-run" title="gimp_procedure_run ()"><code class="function">gimp_procedure_run()</code></a>.</p>
<p>For <a href="../html/libgimpbase3-gimpbaseenums.html#GIMP-PDB-PROC-TYPE-PLUGIN:CAPS"><code class="literal">GIMP_PDB_PROC_TYPE_PLUGIN</code></a> and <a href="../html/libgimpbase3-gimpbaseenums.html#GIMP-PDB-PROC-TYPE-EXTENSION:CAPS"><code class="literal">GIMP_PDB_PROC_TYPE_EXTENSION</code></a>
procedures the call of <em class="parameter"><code>run_func</code></em>
 is basically the lifetime of the
plug-in.</p>
<div class="refsect3">
<a name="gimp-procedure-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>plug_in</p></td>
<td class="parameter_description"><p>a <a class="link" href="GimpPlugIn.html" title="GimpPlugIn"><span class="type">GimpPlugIn</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the new procedure's name.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>proc_type</p></td>
<td class="parameter_description"><p>the new procedure's <a href="../html/libgimpbase3-gimpbaseenums.html#GimpPDBProcType"><span class="type">GimpPDBProcType</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>run_func</p></td>
<td class="parameter_description"><p>the run function for the new procedure.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>run_data</p></td>
<td class="parameter_description"><p>user data passed to <em class="parameter"><code>run_func</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>run_data_destroy</p></td>
<td class="parameter_description"><p>free function for <em class="parameter"><code>run_data</code></em>
, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-new.returns"></a><h4>Returns</h4>
<p> a new <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-plug-in"></a><h3>gimp_procedure_get_plug_in ()</h3>
<pre class="programlisting"><a class="link" href="GimpPlugIn.html" title="GimpPlugIn"><span class="returnvalue">GimpPlugIn</span></a> *
gimp_procedure_get_plug_in (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<div class="refsect3">
<a name="gimp-procedure-get-plug-in.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-plug-in.returns"></a><h4>Returns</h4>
<p>The <a class="link" href="GimpPlugIn.html" title="GimpPlugIn"><span class="type">GimpPlugIn</span></a> given in <a class="link" href="GimpProcedure.html#gimp-procedure-new" title="gimp_procedure_new ()"><code class="function">gimp_procedure_new()</code></a>. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-name"></a><h3>gimp_procedure_get_name ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
gimp_procedure_get_name (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<div class="refsect3">
<a name="gimp-procedure-get-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-name.returns"></a><h4>Returns</h4>
<p> The procedure's name given in <a class="link" href="GimpProcedure.html#gimp-procedure-new" title="gimp_procedure_new ()"><code class="function">gimp_procedure_new()</code></a>.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-proc-type"></a><h3>gimp_procedure_get_proc_type ()</h3>
<pre class="programlisting"><a href="../html/libgimpbase3-gimpbaseenums.html#GimpPDBProcType"><span class="returnvalue">GimpPDBProcType</span></a>
gimp_procedure_get_proc_type (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<div class="refsect3">
<a name="gimp-procedure-get-proc-type.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-proc-type.returns"></a><h4>Returns</h4>
<p> The procedure's type given in <a class="link" href="GimpProcedure.html#gimp-procedure-new" title="gimp_procedure_new ()"><code class="function">gimp_procedure_new()</code></a>.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-set-image-types"></a><h3>gimp_procedure_set_image_types ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gimp_procedure_set_image_types (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                                <em class="parameter"><code>const <span class="type">gchar</span> *image_types</code></em>);</pre>
<p>This is a comma separated list of image types, or actually drawable
types, that this procedure can deal with. Wildcards are possible
here, so you could say "RGB*" instead of "RGB, RGBA" or "*" for all
image types.</p>
<p>Supported types are "RGB", "GRAY", "INDEXED" and their variants
with alpha.</p>
<div class="refsect3">
<a name="gimp-procedure-set-image-types.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>image_types</p></td>
<td class="parameter_description"><p>The image types this procedure can operate on.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-image-types"></a><h3>gimp_procedure_get_image_types ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
gimp_procedure_get_image_types (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<p>This function retrieves the list of image types the procedure can
operate on. See <a class="link" href="GimpProcedure.html#gimp-procedure-set-image-types" title="gimp_procedure_set_image_types ()"><code class="function">gimp_procedure_set_image_types()</code></a>.</p>
<div class="refsect3">
<a name="gimp-procedure-get-image-types.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-image-types.returns"></a><h4>Returns</h4>
<p> The image types.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-set-menu-label"></a><h3>gimp_procedure_set_menu_label ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gimp_procedure_set_menu_label (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                               <em class="parameter"><code>const <span class="type">gchar</span> *menu_label</code></em>);</pre>
<p>Sets the label to use for the <em class="parameter"><code>procedure</code></em>
's menu entry, The
location(s) where to register in the menu hierarchy is chosen using
<a class="link" href="GimpProcedure.html#gimp-procedure-add-menu-path" title="gimp_procedure_add_menu_path ()"><code class="function">gimp_procedure_add_menu_path()</code></a>.</p>
<p>For translations of menu labels to work properly, <em class="parameter"><code>menu_label</code></em>

should only be marked for translation but passed to this function
untranslated, for example using N_("Label"). GIMP will look up the
translation in the textdomain registered for the plug-in.</p>
<div class="refsect3">
<a name="gimp-procedure-set-menu-label.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>menu_label</p></td>
<td class="parameter_description"><p>The <em class="parameter"><code>procedure</code></em>
's menu label.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-menu-label"></a><h3>gimp_procedure_get_menu_label ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
gimp_procedure_get_menu_label (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<div class="refsect3">
<a name="gimp-procedure-get-menu-label.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-menu-label.returns"></a><h4>Returns</h4>
<p> The procedure's menu label given in
<a class="link" href="GimpProcedure.html#gimp-procedure-set-menu-label" title="gimp_procedure_set_menu_label ()"><code class="function">gimp_procedure_set_menu_label()</code></a>.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-add-menu-path"></a><h3>gimp_procedure_add_menu_path ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gimp_procedure_add_menu_path (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                              <em class="parameter"><code>const <span class="type">gchar</span> *menu_path</code></em>);</pre>
<p>Adds a menu path to the procedure. Only procedures which have a menu
label can add a menu path.</p>
<p>Menu paths are untranslated paths to menus and submenus with the
syntax:</p>
<p>&lt;Prefix&gt;/Path/To/Submenu</p>
<p>for instance:</p>
<p>&lt;Image&gt;/Layer/Transform</p>
<p>See also: <a class="link" href="GimpPlugIn.html#gimp-plug-in-add-menu-branch" title="gimp_plug_in_add_menu_branch ()"><code class="function">gimp_plug_in_add_menu_branch()</code></a>.</p>
<div class="refsect3">
<a name="gimp-procedure-add-menu-path.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>menu_path</p></td>
<td class="parameter_description"><p>The <em class="parameter"><code>procedure</code></em>
's additional menu path.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-menu-paths"></a><h3>gimp_procedure_get_menu_paths ()</h3>
<pre class="programlisting"><span class="returnvalue">GList</span> *
gimp_procedure_get_menu_paths (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<div class="refsect3">
<a name="gimp-procedure-get-menu-paths.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-menu-paths.returns"></a><h4>Returns</h4>
<p>the <em class="parameter"><code>procedure</code></em>
's
menu paths as added with <a class="link" href="GimpProcedure.html#gimp-procedure-add-menu-path" title="gimp_procedure_add_menu_path ()"><code class="function">gimp_procedure_add_menu_path()</code></a>. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> gchar*]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-set-icon-name"></a><h3>gimp_procedure_set_icon_name ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gimp_procedure_set_icon_name (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                              <em class="parameter"><code>const <span class="type">gchar</span> *icon_name</code></em>);</pre>
<p>Sets the icon for <em class="parameter"><code>procedure</code></em>
 to the icon referenced by <em class="parameter"><code>icon_name</code></em>
.</p>
<div class="refsect3">
<a name="gimp-procedure-set-icon-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>a <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>icon_name</p></td>
<td class="parameter_description"><p>an icon name. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-set-icon-file"></a><h3>gimp_procedure_set_icon_file ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gimp_procedure_set_icon_file (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                              <em class="parameter"><code><span class="type">GFile</span> *file</code></em>);</pre>
<p>Sets the icon for <em class="parameter"><code>procedure</code></em>
 to the contents of an image file.</p>
<div class="refsect3">
<a name="gimp-procedure-set-icon-file.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>a <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>file</p></td>
<td class="parameter_description"><p>a <span class="type">GFile</span> pointing to an image file. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-set-icon-pixbuf"></a><h3>gimp_procedure_set_icon_pixbuf ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gimp_procedure_set_icon_pixbuf (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                                <em class="parameter"><code><span class="type">GdkPixbuf</span> *pixbuf</code></em>);</pre>
<p>Sets the icon for <em class="parameter"><code>procedure</code></em>
 to <em class="parameter"><code>pixbuf</code></em>
.</p>
<div class="refsect3">
<a name="gimp-procedure-set-icon-pixbuf.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>a <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>a <span class="type">GdkPixbuf</span>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-icon-type"></a><h3>gimp_procedure_get_icon_type ()</h3>
<pre class="programlisting"><a href="../html/libgimpbase3-gimpbaseenums.html#GimpIconType"><span class="returnvalue">GimpIconType</span></a>
gimp_procedure_get_icon_type (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<p>Gets the type of data set as <em class="parameter"><code>procedure</code></em>
's icon. Depending on the
result, you can call the relevant specific function, such as
<a class="link" href="GimpProcedure.html#gimp-procedure-get-icon-name" title="gimp_procedure_get_icon_name ()"><code class="function">gimp_procedure_get_icon_name()</code></a>.</p>
<div class="refsect3">
<a name="gimp-procedure-get-icon-type.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>a <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-icon-type.returns"></a><h4>Returns</h4>
<p> the <a href="../html/libgimpbase3-gimpbaseenums.html#GimpIconType"><span class="type">GimpIconType</span></a> of <em class="parameter"><code>procedure</code></em>
's icon.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-icon-name"></a><h3>gimp_procedure_get_icon_name ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
gimp_procedure_get_icon_name (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<p>Gets the name of the icon if one was set for <em class="parameter"><code>procedure</code></em>
.</p>
<div class="refsect3">
<a name="gimp-procedure-get-icon-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>a <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-icon-name.returns"></a><h4>Returns</h4>
<p>the icon name or <code class="literal">NULL</code> if no icon name was set. </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-icon-file"></a><h3>gimp_procedure_get_icon_file ()</h3>
<pre class="programlisting"><span class="returnvalue">GFile</span> *
gimp_procedure_get_icon_file (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<p>Gets the file of the icon if one was set for <em class="parameter"><code>procedure</code></em>
.</p>
<div class="refsect3">
<a name="gimp-procedure-get-icon-file.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>a <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-icon-file.returns"></a><h4>Returns</h4>
<p>the icon <span class="type">GFile</span> or <code class="literal">NULL</code> if no
file was set. </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-icon-pixbuf"></a><h3>gimp_procedure_get_icon_pixbuf ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkPixbuf</span> *
gimp_procedure_get_icon_pixbuf (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<p>Gets the <span class="type">GdkPixbuf</span> of the icon if an icon was set this way for
<em class="parameter"><code>procedure</code></em>
.</p>
<div class="refsect3">
<a name="gimp-procedure-get-icon-pixbuf.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>a <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-icon-pixbuf.returns"></a><h4>Returns</h4>
<p>the icon pixbuf or <code class="literal">NULL</code> if no
icon name was set. </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-set-documentation"></a><h3>gimp_procedure_set_documentation ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gimp_procedure_set_documentation (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                                  <em class="parameter"><code>const <span class="type">gchar</span> *blurb</code></em>,
                                  <em class="parameter"><code>const <span class="type">gchar</span> *help</code></em>,
                                  <em class="parameter"><code>const <span class="type">gchar</span> *help_id</code></em>);</pre>
<p><em class="parameter"><code>blurb</code></em>
 is used as the <em class="parameter"><code>procedure</code></em>
's tooltip when represented in the UI,
for example as a menu entry.</p>
<p>For translations of tooltips to work properly, <em class="parameter"><code>blurb</code></em>
 should only
be marked for translation but passed to this function untranslated,
for example using N_("Blurb"). GIMP will look up the translation in
the textdomain registered for the plug-in.</p>
<p><em class="parameter"><code>help</code></em>
 is a free-form text that's meant as documentation for
developers of scripts and plug-ins.</p>
<p>Sets various documentation strings on <em class="parameter"><code>procedure</code></em>
.</p>
<div class="refsect3">
<a name="gimp-procedure-set-documentation.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>blurb</p></td>
<td class="parameter_description"><p>The <em class="parameter"><code>procedure</code></em>
's blurb.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>help</p></td>
<td class="parameter_description"><p>The <em class="parameter"><code>procedure</code></em>
's help text.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>help_id</p></td>
<td class="parameter_description"><p>The <em class="parameter"><code>procedure</code></em>
's help ID.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-blurb"></a><h3>gimp_procedure_get_blurb ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
gimp_procedure_get_blurb (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<div class="refsect3">
<a name="gimp-procedure-get-blurb.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-blurb.returns"></a><h4>Returns</h4>
<p> The procedure's blurb given in
<a class="link" href="GimpProcedure.html#gimp-procedure-set-documentation" title="gimp_procedure_set_documentation ()"><code class="function">gimp_procedure_set_documentation()</code></a>.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-help"></a><h3>gimp_procedure_get_help ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
gimp_procedure_get_help (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<div class="refsect3">
<a name="gimp-procedure-get-help.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-help.returns"></a><h4>Returns</h4>
<p> The procedure's help text given in
<a class="link" href="GimpProcedure.html#gimp-procedure-set-documentation" title="gimp_procedure_set_documentation ()"><code class="function">gimp_procedure_set_documentation()</code></a>.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-help-id"></a><h3>gimp_procedure_get_help_id ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
gimp_procedure_get_help_id (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<div class="refsect3">
<a name="gimp-procedure-get-help-id.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-help-id.returns"></a><h4>Returns</h4>
<p> The procedure's help ID given in
<a class="link" href="GimpProcedure.html#gimp-procedure-set-documentation" title="gimp_procedure_set_documentation ()"><code class="function">gimp_procedure_set_documentation()</code></a>.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-set-attribution"></a><h3>gimp_procedure_set_attribution ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gimp_procedure_set_attribution (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                                <em class="parameter"><code>const <span class="type">gchar</span> *authors</code></em>,
                                <em class="parameter"><code>const <span class="type">gchar</span> *copyright</code></em>,
                                <em class="parameter"><code>const <span class="type">gchar</span> *date</code></em>);</pre>
<p>Sets various attribution strings on <em class="parameter"><code>procedure</code></em>
.</p>
<div class="refsect3">
<a name="gimp-procedure-set-attribution.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>authors</p></td>
<td class="parameter_description"><p>The <em class="parameter"><code>procedure</code></em>
's author(s).</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>copyright</p></td>
<td class="parameter_description"><p>The <em class="parameter"><code>procedure</code></em>
's copyright.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>date</p></td>
<td class="parameter_description"><p>The <em class="parameter"><code>procedure</code></em>
's date (written or published).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-authors"></a><h3>gimp_procedure_get_authors ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
gimp_procedure_get_authors (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<div class="refsect3">
<a name="gimp-procedure-get-authors.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-authors.returns"></a><h4>Returns</h4>
<p> The procedure's authors given in
<a class="link" href="GimpProcedure.html#gimp-procedure-set-attribution" title="gimp_procedure_set_attribution ()"><code class="function">gimp_procedure_set_attribution()</code></a>.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-copyright"></a><h3>gimp_procedure_get_copyright ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
gimp_procedure_get_copyright (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<div class="refsect3">
<a name="gimp-procedure-get-copyright.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-copyright.returns"></a><h4>Returns</h4>
<p> The procedure's copyright given in
<a class="link" href="GimpProcedure.html#gimp-procedure-set-attribution" title="gimp_procedure_set_attribution ()"><code class="function">gimp_procedure_set_attribution()</code></a>.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-date"></a><h3>gimp_procedure_get_date ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
gimp_procedure_get_date (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<div class="refsect3">
<a name="gimp-procedure-get-date.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-date.returns"></a><h4>Returns</h4>
<p> The procedure's date given in
<a class="link" href="GimpProcedure.html#gimp-procedure-set-attribution" title="gimp_procedure_set_attribution ()"><code class="function">gimp_procedure_set_attribution()</code></a>.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-add-argument"></a><h3>gimp_procedure_add_argument ()</h3>
<pre class="programlisting"><span class="returnvalue">GParamSpec</span> *
gimp_procedure_add_argument (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                             <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>);</pre>
<p>Add a new argument to <em class="parameter"><code>procedure</code></em>
 according to <em class="parameter"><code>pspec</code></em>
 specifications.
The arguments will be ordered according to the call order to
<a class="link" href="GimpProcedure.html#gimp-procedure-add-argument" title="gimp_procedure_add_argument ()"><code class="function">gimp_procedure_add_argument()</code></a> and
<code class="function">gimp_procedure_add_argument_from_property()</code>.</p>
<div class="refsect3">
<a name="gimp-procedure-add-argument.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>the <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pspec</p></td>
<td class="parameter_description"><p>the argument specification. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-add-argument.returns"></a><h4>Returns</h4>
<p>the same <em class="parameter"><code>pspec</code></em>
. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-add-aux-argument"></a><h3>gimp_procedure_add_aux_argument ()</h3>
<pre class="programlisting"><span class="returnvalue">GParamSpec</span> *
gimp_procedure_add_aux_argument (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                                 <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>);</pre>
<p>Add a new auxiliary argument to <em class="parameter"><code>procedure</code></em>
 according to <em class="parameter"><code>pspec</code></em>

specifications.</p>
<p>Auxiliary arguments are not passed to the <em class="parameter"><code>procedure</code></em>
 in <code class="function">run()</code> and
are not known to the PDB. They are however members of the
<a class="link" href="GimpProcedureConfig.html" title="GimpProcedureConfig"><span class="type">GimpProcedureConfig</span></a> created by <a class="link" href="GimpProcedure.html#gimp-procedure-create-config" title="gimp_procedure_create_config ()"><code class="function">gimp_procedure_create_config()</code></a> and
can be used to persistently store whatever last used values the
<em class="parameter"><code>procedure</code></em>
 wants to remember across invocations</p>
<div class="refsect3">
<a name="gimp-procedure-add-aux-argument.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>the <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pspec</p></td>
<td class="parameter_description"><p>the argument specification. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-add-aux-argument.returns"></a><h4>Returns</h4>
<p>the same <em class="parameter"><code>pspec</code></em>
. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-add-return-value"></a><h3>gimp_procedure_add_return_value ()</h3>
<pre class="programlisting"><span class="returnvalue">GParamSpec</span> *
gimp_procedure_add_return_value (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                                 <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>);</pre>
<p>Add a new return value to <em class="parameter"><code>procedure</code></em>
 according to <em class="parameter"><code>pspec</code></em>

specifications.</p>
<p>The returned values will be ordered according to the call order to
<a class="link" href="GimpProcedure.html#gimp-procedure-add-return-value" title="gimp_procedure_add_return_value ()"><code class="function">gimp_procedure_add_return_value()</code></a> and
<code class="function">gimp_procedure_add_return_value_from_property()</code>.</p>
<div class="refsect3">
<a name="gimp-procedure-add-return-value.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>the <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pspec</p></td>
<td class="parameter_description"><p>the return value specification. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-add-return-value.returns"></a><h4>Returns</h4>
<p>the same <em class="parameter"><code>pspec</code></em>
. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-find-argument"></a><h3>gimp_procedure_find_argument ()</h3>
<pre class="programlisting"><span class="returnvalue">GParamSpec</span> *
gimp_procedure_find_argument (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                              <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
<p>Searches the <em class="parameter"><code>procedure</code></em>
's arguments for a <span class="type">GParamSpec</span> called <em class="parameter"><code>name</code></em>
.</p>
<div class="refsect3">
<a name="gimp-procedure-find-argument.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>An argument name</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-find-argument.returns"></a><h4>Returns</h4>
<p>The <em class="parameter"><code>procedure</code></em>
's argument with <em class="parameter"><code>name</code></em>
if it
exists, or <code class="literal">NULL</code> otherwise. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-find-aux-argument"></a><h3>gimp_procedure_find_aux_argument ()</h3>
<pre class="programlisting"><span class="returnvalue">GParamSpec</span> *
gimp_procedure_find_aux_argument (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                                  <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
<p>Searches the <em class="parameter"><code>procedure</code></em>
's auxiliary arguments for a <span class="type">GParamSpec</span>
called <em class="parameter"><code>name</code></em>
.</p>
<div class="refsect3">
<a name="gimp-procedure-find-aux-argument.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>An auxiliary argument name</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-find-aux-argument.returns"></a><h4>Returns</h4>
<p>The <em class="parameter"><code>procedure</code></em>
's auxiliary argument with
<em class="parameter"><code>name</code></em>
if it exists, or <code class="literal">NULL</code> otherwise. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-find-return-value"></a><h3>gimp_procedure_find_return_value ()</h3>
<pre class="programlisting"><span class="returnvalue">GParamSpec</span> *
gimp_procedure_find_return_value (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                                  <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
<p>Searches the <em class="parameter"><code>procedure</code></em>
's return values for a <span class="type">GParamSpec</span> called
<em class="parameter"><code>name</code></em>
.</p>
<div class="refsect3">
<a name="gimp-procedure-find-return-value.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>A return value name</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-find-return-value.returns"></a><h4>Returns</h4>
<p>The <em class="parameter"><code>procedure</code></em>
's return values with <em class="parameter"><code>name</code></em>
if it exists, or <code class="literal">NULL</code> otherwise. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-arguments"></a><h3>gimp_procedure_get_arguments ()</h3>
<pre class="programlisting"><span class="returnvalue">GParamSpec</span> **
gimp_procedure_get_arguments (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                              <em class="parameter"><code><span class="type">gint</span> *n_arguments</code></em>);</pre>
<div class="refsect3">
<a name="gimp-procedure-get-arguments.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>n_arguments</p></td>
<td class="parameter_description"><p>Returns the number of arguments. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-arguments.returns"></a><h4>Returns</h4>
<p>An array
of <em class="parameter"><code>GParamSpec</code></em>
in the order added with
<a class="link" href="GimpProcedure.html#gimp-procedure-add-argument" title="gimp_procedure_add_argument ()"><code class="function">gimp_procedure_add_argument()</code></a>. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_arguments]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-aux-arguments"></a><h3>gimp_procedure_get_aux_arguments ()</h3>
<pre class="programlisting"><span class="returnvalue">GParamSpec</span> **
gimp_procedure_get_aux_arguments (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                                  <em class="parameter"><code><span class="type">gint</span> *n_arguments</code></em>);</pre>
<div class="refsect3">
<a name="gimp-procedure-get-aux-arguments.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>n_arguments</p></td>
<td class="parameter_description"><p>Returns the number of auxiliary arguments. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-aux-arguments.returns"></a><h4>Returns</h4>
<p>An array
of <em class="parameter"><code>GParamSpec</code></em>
in the order added with
<a class="link" href="GimpProcedure.html#gimp-procedure-add-aux-argument" title="gimp_procedure_add_aux_argument ()"><code class="function">gimp_procedure_add_aux_argument()</code></a>. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_arguments]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-get-return-values"></a><h3>gimp_procedure_get_return_values ()</h3>
<pre class="programlisting"><span class="returnvalue">GParamSpec</span> **
gimp_procedure_get_return_values (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                                  <em class="parameter"><code><span class="type">gint</span> *n_return_values</code></em>);</pre>
<div class="refsect3">
<a name="gimp-procedure-get-return-values.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>n_return_values</p></td>
<td class="parameter_description"><p>Returns the number of return values. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-get-return-values.returns"></a><h4>Returns</h4>
<p>An array
of <em class="parameter"><code>GParamSpec</code></em>
in the order added with
<a class="link" href="GimpProcedure.html#gimp-procedure-add-return-value" title="gimp_procedure_add_return_value ()"><code class="function">gimp_procedure_add_return_value()</code></a>. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_return_values]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-new-arguments"></a><h3>gimp_procedure_new_arguments ()</h3>
<pre class="programlisting"><a href="/local/head/share/gtk-doc/html/libgimpbase/libgimpbase-GimpValueArray.html#GimpValueArray"><span class="returnvalue">GimpValueArray</span></a> *
gimp_procedure_new_arguments (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-new-return-values"></a><h3>gimp_procedure_new_return_values ()</h3>
<pre class="programlisting"><a href="/local/head/share/gtk-doc/html/libgimpbase/libgimpbase-GimpValueArray.html#GimpValueArray"><span class="returnvalue">GimpValueArray</span></a> *
gimp_procedure_new_return_values (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                                  <em class="parameter"><code><a href="../html/libgimpbase3-gimpbaseenums.html#GimpPDBStatusType"><span class="type">GimpPDBStatusType</span></a> status</code></em>,
                                  <em class="parameter"><code><span class="type">GError</span> *error</code></em>);</pre>
<p>Format the expected return values from procedures, using the return
values set with <a class="link" href="GimpProcedure.html#gimp-procedure-add-return-value" title="gimp_procedure_add_return_value ()"><code class="function">gimp_procedure_add_return_value()</code></a>.</p>
<div class="refsect3">
<a name="gimp-procedure-new-return-values.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>the <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>status</p></td>
<td class="parameter_description"><p>the success status of the procedure run.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>an optional <span class="type">GError</span>. This parameter should be set if
<em class="parameter"><code>status</code></em>
is either <a href="../html/libgimpbase3-gimpbaseenums.html#GIMP-PDB-EXECUTION-ERROR:CAPS"><span class="type">GIMP_PDB_EXECUTION_ERROR</span></a> or
<a href="../html/libgimpbase3-gimpbaseenums.html#GIMP-PDB-CALLING-ERROR:CAPS"><span class="type">GIMP_PDB_CALLING_ERROR</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-new-return-values.returns"></a><h4>Returns</h4>
<p> the expected <a href="/local/head/share/gtk-doc/html/libgimpbase/libgimpbase-GimpValueArray.html#GimpValueArray"><span class="type">GimpValueArray</span></a> as could be returned by a
<a class="link" href="GimpProcedure.html#GimpRunFunc" title="GimpRunFunc ()"><span class="type">GimpRunFunc</span></a>.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-run"></a><h3>gimp_procedure_run ()</h3>
<pre class="programlisting"><a href="/local/head/share/gtk-doc/html/libgimpbase/libgimpbase-GimpValueArray.html#GimpValueArray"><span class="returnvalue">GimpValueArray</span></a> *
gimp_procedure_run (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>,
                    <em class="parameter"><code><a href="/local/head/share/gtk-doc/html/libgimpbase/libgimpbase-GimpValueArray.html#GimpValueArray"><span class="type">GimpValueArray</span></a> *args</code></em>);</pre>
<p>Runs the procedure, calling the run_func given in <a class="link" href="GimpProcedure.html#gimp-procedure-new" title="gimp_procedure_new ()"><code class="function">gimp_procedure_new()</code></a>.</p>
<div class="refsect3">
<a name="gimp-procedure-run.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>a <em class="parameter"><code>GimpProcedure</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>args</p></td>
<td class="parameter_description"><p>the <em class="parameter"><code>procedure</code></em>
's arguments.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-run.returns"></a><h4>Returns</h4>
<p>The <em class="parameter"><code>procedure</code></em>
's return values. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-extension-ready"></a><h3>gimp_procedure_extension_ready ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gimp_procedure_extension_ready (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<p>Notify the main GIMP application that the extension has been
properly initialized and is ready to run.</p>
<p>This function <span class="emphasis"><em>must</em></span> be called from every
procedure's <a class="link" href="GimpProcedure.html#GimpRunFunc" title="GimpRunFunc ()"><span class="type">GimpRunFunc</span></a> that was created as
<a href="../html/libgimpbase3-gimpbaseenums.html#GIMP-PDB-PROC-TYPE-EXTENSION:CAPS"><span class="type">GIMP_PDB_PROC_TYPE_EXTENSION</span></a>.</p>
<p>Subsequently, extensions can process temporary procedure run
requests using either <a class="link" href="GimpPlugIn.html#gimp-plug-in-extension-enable" title="gimp_plug_in_extension_enable ()"><code class="function">gimp_plug_in_extension_enable()</code></a> or
<a class="link" href="GimpPlugIn.html#gimp-plug-in-extension-process" title="gimp_plug_in_extension_process ()"><code class="function">gimp_plug_in_extension_process()</code></a>.</p>
<p>See also: <a class="link" href="GimpProcedure.html#gimp-procedure-new" title="gimp_procedure_new ()"><code class="function">gimp_procedure_new()</code></a>.</p>
<div class="refsect3">
<a name="gimp-procedure-extension-ready.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-procedure-create-config"></a><h3>gimp_procedure_create_config ()</h3>
<pre class="programlisting"><a class="link" href="GimpProcedureConfig.html" title="GimpProcedureConfig"><span class="returnvalue">GimpProcedureConfig</span></a> *
gimp_procedure_create_config (<em class="parameter"><code><a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> *procedure</code></em>);</pre>
<p>Create a <a href="../html/libgimpconfig3-GimpConfig.html#GimpConfig"><span class="type">GimpConfig</span></a> with properties that match <em class="parameter"><code>procedure</code></em>
's arguments.</p>
<div class="refsect3">
<a name="gimp-procedure-create-config.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>procedure</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-procedure-create-config.returns"></a><h4>Returns</h4>
<p>The new <a href="../html/libgimpconfig3-GimpConfig.html#GimpConfig"><span class="type">GimpConfig</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
</div>
<div class="refsect1">
<a name="GimpProcedure.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GimpProcedure-struct"></a><h3>GimpProcedure</h3>
<pre class="programlisting">typedef struct _GimpProcedure GimpProcedure;</pre>
</div>
<hr>
<div class="refsect2">
<a name="GimpProcedureClass"></a><h3>struct GimpProcedureClass</h3>
<pre class="programlisting">struct GimpProcedureClass {
  GObjectClass parent_class;

  void                  (* install)       (GimpProcedure         *procedure);
  void                  (* uninstall)     (GimpProcedure         *procedure);

  GimpValueArray      * (* run)           (GimpProcedure         *procedure,
                                           const GimpValueArray  *args);

  GimpProcedureConfig * (* create_config) (GimpProcedure         *procedure,
                                           GParamSpec           **args,
                                           gint                   n_args);

  /* Padding for future expansion */
};
</pre>
<div class="refsect3">
<a name="GimpProcedureClass.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GimpProcedureClass.install"></a>install</code></em> ()</p></td>
<td class="struct_member_description"><p>called to install the procedure with the main GIMP
application. This is an implementation detail and must never
be called by any plug-in code.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GimpProcedureClass.uninstall"></a>uninstall</code></em> ()</p></td>
<td class="struct_member_description"><p>called to uninstall the procedure from the main GIMP
application. This is an implementation detail and must never
be called by any plug-in code.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GimpProcedureClass.run"></a>run</code></em> ()</p></td>
<td class="struct_member_description"><p>called when the procedure is executed via <a class="link" href="GimpProcedure.html#gimp-procedure-run" title="gimp_procedure_run ()"><code class="function">gimp_procedure_run()</code></a>.
the default implementation simply calls the procedure's <a class="link" href="GimpProcedure.html#GimpRunFunc" title="GimpRunFunc ()"><span class="type">GimpRunFunc</span></a>,
<a class="link" href="GimpProcedure.html" title="GimpProcedure"><span class="type">GimpProcedure</span></a> subclasses are free to modify the passed <em class="parameter"><code>args</code></em>
and
call their own, subclass-specific run functions.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GimpProcedureClass.create-config"></a>create_config</code></em> ()</p></td>
<td class="struct_member_description"><p>called when a <a href="../html/libgimpconfig3-GimpConfig.html#GimpConfig"><span class="type">GimpConfig</span></a> object is created using
<a class="link" href="GimpProcedure.html#gimp-procedure-create-config" title="gimp_procedure_create_config ()"><code class="function">gimp_procedure_create_config()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
</div>
<div class="refsect1">
<a name="GimpProcedure.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GimpProcedure--name"></a><h3>The <code class="literal">“name”</code> property</h3>
<pre class="programlisting">  “name”                     <span class="type">char</span> *</pre>
<p>The procedure's name.</p>
<p>Owner: GimpProcedure</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Default value: NULL</p>
</div>
<hr>
<div class="refsect2">
<a name="GimpProcedure--plug-in"></a><h3>The <code class="literal">“plug-in”</code> property</h3>
<pre class="programlisting">  “plug-in”                  <a class="link" href="GimpPlugIn.html" title="GimpPlugIn"><span class="type">GimpPlugIn</span></a> *</pre>
<p>The GimpPlugIn of this plug-in process.</p>
<p>Owner: GimpProcedure</p>
<p>Flags: Read / Write / Construct Only</p>
</div>
<hr>
<div class="refsect2">
<a name="GimpProcedure--procedure-type"></a><h3>The <code class="literal">“procedure-type”</code> property</h3>
<pre class="programlisting">  “procedure-type”           <a href="../html/libgimpbase3-gimpbaseenums.html#GimpPDBProcType"><span class="type">GimpPDBProcType</span></a></pre>
<p>The procedure's type.</p>
<p>Owner: GimpProcedure</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Default value: GIMP_PDB_PROC_TYPE_PLUGIN</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.0</div>
</body>
</html>